import Mock from 'mockjs';


/**
 *  mock- 数据模拟
 * */
const employeeList = () => {
    // 部门和对应职位映射
    const departments = ['产品部', '研发部', '设计部', '市场部', '人力资源', '财务部'];
    const positionsMap = {
        '产品部': ['产品经理', '产品助理', 'UX研究员'],
        '研发部': ['前端开发', '后端开发', '全栈开发', '测试工程师', '运维工程师'],
        '设计部': ['UI设计师', 'UX设计师', '插画师'],
        '市场部': ['市场专员', '营销经理', '内容运营'],
        '人力资源': ['招聘专员', 'HRBP', '培训经理'],
        '财务部': ['会计', '出纳', '财务经理']
    };

    // 使用Mock.js生成24条员工数据
    return Mock.mock({
        'list|5': [{
            // 生成1-24的唯一ID
            'id|+1': 1,

            // 生成中文姓名（不再是"员工X"的形式）
            'name': '@cname',

            // 随机选择部门
            'department|1': departments,

            // 根据部门选择对应职位
            'position': function() {
                const deptPositions = positionsMap[this.department];
                return deptPositions[Mock.Random.integer(0, deptPositions.length - 1)];
            },

            // 生成符合规则的邮箱
            'email': function() {  // email 如何 变成 @email
                // 将姓名转换为拼音并生成邮箱
                return Mock.Random.email(this.name);
            },

            // 生成1-10年前的入职日期  --- 建议使用 moment.js
            'joinDate': () => Mock.Random.date('yyyy-MM-dd',
                new Date(Date.now() - Mock.Random.integer(1, 10) * 365 * 24 * 60 * 60 * 1000)
            ),

            // 生成随机头像
            'avatar': () => Mock.Random.image('200x200', Mock.Random.color(), '#FFF', 'png', Mock.Random.first()),

            // 80%概率为活跃状态
            'status': () => Mock.Random.float(0, 1) > 0.2 ? 'active' : 'inactive'
        }]
    }).list;
};

/**
 *  mock - ajax拦截
 * */
Mock.mock('http://test.org/test/emp/list','get',employeeList);